fix(i18n,app-shell): the maker's first sentence promises only what ADR-0112 v1 builds (#8329) - #8439
Merged
Merged
Conversation
…R-0112 v1 builds (#8329) The build surface's empty state opened with "Describe an app or workflow in plain language — I draft the objects, screens and automations, …". Workflows and automations are exactly what ADR-0112 v1 refuses: it has no flows, actions or schedules, so a user who took that sentence at its word was turned down. This is the last member of a family whose other three were already fixed — the five from-scratch start chips (cloud#1984 / objectui#7710), the four edit-mode chips (objectui#7709) and the model's own closing suggestions (cloud#2020 / cloud#2022). The chips were audited and the model's prose was audited; the static line ABOVE them, which is the first thing a new user reads on the page, was not. Two strings, both on the build agent's surface: console.ai.empty.build.description — "an app or workflow … objects, screens and automations" → "an app … objects, screens and sample data" console.ai.empty.editApp.description — "… view or automation" → "… view or dashboard" Both are changed in ALL TEN packs, not just en/zh: every pack shipped its own translated violation, so a two-language fix would have left eight users reading the old promise. The hardcoded `defaultValue` fallbacks in AiChatPage.tsx are updated with them, since a stale fallback silently reinstates the sentence for any pack that loses the key. Deliberately NOT touched — the platform's manual automation surfaces are real and the boundary is v1 AI AUTHORING, not the word "automation": `home.build.subtitle` (its card opens /studio, which genuinely authors flows), `engine.studio.landing.description`, `dataImport.optRunAutomations`, `packagedAutomation.*`, the marketplace `automation` category, and the approvals / flow-runner groups. Guarded by makerEmptyState-v1-scope-8329.test.ts, built on the 7709 suite's shape: every pack scanned with its OWN banned vocabulary (an English-only scan would have declared the five non-Latin packs clean without reading a character of them), plus a non-vacuity control that re-runs each list against the two sentences that pack actually retired. REVERT both when ADR-0112 v2 re-adds flows and actions — same line of the roadmap as the chips. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ix (objectui#8329) `Changeset Declaration` was the one red check on this PR. The diff touches `@object-ui/i18n` (ten locale packs) and `@object-ui/app-shell` (the two hardcoded defaultValue fallbacks), so both are declared. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #8329
What was wrong
The AI build surface's empty state — the first sentence a new user reads on that page, sitting above the start chips — opened with:
Workflows and automations are exactly what ADR-0112 v1 refuses (no flows, actions or schedules), so a user who took the sentence at its word was turned down.
This is the last member of a family whose other three were already fixed:
What changed
Two strings, both on the build agent's surface (
agentEmptyState()inAiChatPage.tsx):console.ai.empty.build.description— "an app or workflow … objects, screens and automations" → "an app … objects, screens and sample data"console.ai.empty.editApp.description— "… view or automation" → "… view or dashboard"The second one is not in the issue body — I found it while tracing the render site. It is the same
isBuildAgent()branch (edit mode,?package=), so it makes the same promise on the same surface.The issue says "只有 en 与 zh 有这条,其余 8 个语言包走回退". That is not the case — every one of the ten packs shipped its own translated violation (ar/de/es/fr/ja/ko/pt/ru too). A two-language fix would have left eight languages reading the old promise.
The hardcoded
defaultValuefallbacks inAiChatPage.tsxare updated alongside, since a stale fallback silently reinstates the sentence for any pack that loses the key.Deliberately NOT changed
The boundary is v1 AI authoring, not the word "automation". The platform's manual automation paths are real and stay as they are:
home.build.subtitle("design objects, forms, automations and interfaces")/studio— manual authoring, which genuinely does author flowsengine.studio.landing.descriptiondataImport.optRunAutomations("Run automations & triggers")packagedAutomation.*automationcategoryflowRunner.*groupsauth.layout.subhead("…data management, workflows, and analytics")console.ai.*approvhits (toolAwaitingApproval,planApprove*)Tests
New
packages/i18n/src/__tests__/makerEmptyState-v1-scope-8329.test.ts, built on the 7709 suite's shape (54 tests):Verified the guard actually bites: reinstating the old zh string fails 3 tests (
expected [ '自动', '流程' ] to deeply equal []).Verification
packages/i18n/— 1090 passedpackages/app-shell/— 6261 passed, 1 skipped (649 files)@object-ui/i18n type-checkclean;app-shellbuilds clean (tscpasses)console.ai.empty.{build,editApp}.descriptionviacreateI18n({lng}) + changeLanguage()for all ten locales and read back each translated string — not just a read of the pack objects.Revert note
When ADR-0112 v2 re-adds flows and actions, both sentences come back — same line of the roadmap as the chips. Recorded in the comment beside the keys in
en.tsand in the test'sRETIREDmap (which holds every pack's original wording).🤖 Generated with Claude Code